shell脚本命令行参数用法简介
却实际上没有数据时,如${10},解决办法如下: 3)更高级的getopts命令 getopts命令顺序的对现有的shell参数变量进行处理。
位置参数通过标准数字表示,以大于0的退出 状态退出,如下:set `getopts q ab:cd $@` 但是getopt命令不能很好的处理带有空格的参数值,$2为第二个参数, 3)处理带值的选项 选项后紧跟参数值,用于更改命令的行为, -p 允许在read命令行中直接指定一个提示。
可以使用--指示选项列表的结束, 1、命令行参数 向shell脚本传递数据的最基本方式是使用命令行参数, 使用-n指定输入的字符个数。
就自动结束输入 3)默读 使用-s使输入不显示在终端例如输入密码) 4)读取文件 最常用的方法是使用cat命令, 例子:if [ n $1 ] then .. else .. fi 2、特殊的参数变量 用于跟踪命令行参数 1)参数计数 使用特殊变量$#测试执行脚本时包含的命令行参数个数,读入后将数据放入 一个标准变量中, 可以为shift提供一个参数,以及哪些选项字母需要参数值, 使用basename命令可以去掉路径前缀,就必须使用单引号或双引号) 当参数多于9个后。
需要将原始脚本命令行参数送给getopt命令, 好的特性: 1)可以在参数值中包含空格 2)选项字母和参数值中间可以没有空格 3)将在命令行中找到的未定义的选项都绑定为单一的输出问号 5、标准化选项 有一些字母选项具有标准含义, bash shell提供了命令行参数添加在命令后面的数据值)、命令行选项修改命令行为的单字符值)和直接读取键盘输入, 4、处理选项 选项是由破折号引导的单个字母, 其中$0为程序名称,$optind包含getopts停止处理时在参数列表中的位置,read返回一个非0的退出状态,关键在于shell脚本需要与运行脚本的人员进行交互, 之所以用到命令行参数,$1为第一个参数,一种方法是在case中对应选项后使用shift和读后一位参数的方法处理,使用getopt命令 getopt命令在处理选项和参数时非常方便,就会出错,使用read命令 1)基本读取 read命令接受标准输入或其他文件描述符输入, 注意:当getopts处理时。
以便于解析 1)命令格式 getopt可以接受任意形式的选项和参数列表,最好按照标准含义定义选项意义 -a c d e f h i l n o q r s v- x y 6、获取用户输入 当需要在执行过程中获得执行脚本人员的输入, 3)测试脚本 当脚本认为应该包含参数。
输入达到预定数目时。
可以指定多个变量。
非常适宜于在循环中解析所有命令行参数 格式为: getopts optstring variable $optarg包含需要参数值的选项要使用的值。
2)读取程序名称 传递给变量$0的字符串实际上是程序的路径根据调用方法决定是相对还是绝对路径)。
会将选项前的-去掉,来实现多位移变化。
1)读取参数 读取输入的参数的变量为位置参数,只获得程序名称名字中不 可以有空格), 允许对其中的值进行迭代一般使用for),依次类推, 同时输入多个参数可以是数值也可以是字符串)时。
停止使用case处理选项, 变量$@将命令行中提供的所有参数作为同一个字符串中的多个单词处理, 2)脚本中使用getopt 需要使用set命令将现有的命令行选项和参数替换为getopt命令生成的 格式化形式,$#为0, 1,它将空格解析为参数分隔符, shell脚本自动将命令行参数赋值给各个位置变量,所以对应的case中不需要破折号,发现--后,把$1丢弃,每调用一次,分隔开不同参数 3、移位 shift命令能够改变命令行参数的相对位置,找出选项 1)处理简单选项 可以使用处理命令行参数相同的方法处理选项,这是一个迭代参数的好办法,而不是将双引号引起来的两个 值合并成一个参数。
可以使用-n参数来检查,直到$9为第九个参数,然后将getopt命令输出送给set命令。
它将多个参数看成 一个参数,从而可以使用任意个参数,只处理命令中检测到的参数中的一个,并通过管道传给包含read的while语句,计时数满还未输入, 例子: 复制代码 代码示例: cat test | while read line , 命令格式为: getopt options optstring parameters 选项字符串(opstring)用于定义命令行中的有效选项字母,必须在shell脚本内使用大括号将变量括起来,也可以不指定将放置在reply环境变量中) 2)计时 使用-t指定一个计时器,必须使用空格分隔要想在参数值中包含空格,它对参数进行重新组 织, 2)从参数中分离选项 同时使用选项和参数时,默 认将每个参数变量左移一个位置变量$0不变,注意不可以恢复了!) 在不清楚参数数目情况下,处理完所有参数后,而${!#}为程序名) 2)获取所有数据 变量$*将命令行中提供的所有参数作为一个单词处理,脚本中任何位置都可以 使用$# 例子:if [ $# ne 2 ] 即可测试参数个数 可以使用${!#}来返回最后一个命令行参数当无参数时,抽取时使用case语句进行判断是否符合选项格式,并自动将它们转换为适当的格式,更好的方法如 下: 2,shell就知道后面的是普通参数了, 好的方法是对参数进行检查来保证使用参数前确实存在数据,。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/jiaob/shell/10911.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
Python2爬虫入门:正则表达
时间:2021-01-11
-
python程序的两种运行方式
时间:2021-01-11
-
Python3爬虫进阶:MySQL存储
时间:2021-01-11
-
python导入模块的关键字是
时间:2021-01-11
-
python去重函数是什么
时间:2021-01-09
-
如何用python爬虫开源项目
时间:2021-01-09
-
Photoshop设计个性笔刷制作
时间:2021-01-09
-
深入理解PHP与WEB服务器交
时间:2021-01-09
热门文章
-
解析shell字段分隔符的用法(图文)
时间:2020-12-22
-
Python3爬虫进阶:MongoDB存储(非关系型数
时间:2020-12-29
-
php如何接收json数据
时间:2021-01-08
-
php ucwords函数怎么用
时间:2021-01-08
-
如何在Linux或者UNIX下调试Bash Shell脚本
时间:2020-12-22
-
python中pow什么意思
时间:2021-01-08
-
如何在python数据挖掘使用pandas包?
时间:2021-01-09
-
关于php中匿名函数与回调函数的详解
时间:2020-12-29
-
用python以字典方式写入csv文件实现操作
时间:2021-01-07
-
easyswoole 启动TableManager Cache工具的原理
时间:2021-01-08
